package com.yaolong.api.modules.sys.service;

import com.yaolong.api.modules.sys.domain.SysMenuResource;
import com.yaolong.api.modules.sys.dto.MenuItemNode;
import com.yaolong.api.modules.sys.dto.MenuResourceNode;
import com.yaolong.api.modules.sys.po.MenuResource;
import com.yaolong.api.modules.sys.vo.MenuParams;
import com.yaolong.commons.base.IBaseService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yaolong
 * @since 2021-08-03
 */
public interface ISysMenuResourceService extends IBaseService<SysMenuResource> {
    /**
     * 根据用户名获取菜单树
     * @return
     */
    List<MenuResourceNode> treeListByUsername();

    /**
     * 根据角色id获取菜单列表
     * @param roleId
     * @return List<MenuResource>
     */
    List<MenuResource> listByRoleId(Long roleId);

    /**
     * 获取菜单树
     * @return
     */
    List<MenuResourceNode> treeList();

    /**
     * 获取菜单树(meta合并之后的菜单)
     *  @param params
     * @return
     */
    List<MenuItemNode> treeMenus(MenuParams params);


    /**
     * 获取菜单页面按钮权限
     * @return
     */
    List<String> getPermissionCode();
}
